package com.simtop.dao;

import com.simtop.pojo.u3dpo.Uds;
import com.simtop.pojo.experimentpo.Experiment;
import com.simtop.pojo.experimentpo.ExperimentDynamicVo;
import com.simtop.pojo.experimentpo.ExperimentReportVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;


@Mapper
public interface ExperimentMapper {

    /**
     * 添加实验报告
     *
     * @param experiment
     * @return
     */
    public boolean insertExperiment(Experiment experiment);

    /**
     * 修改实验报告
     *
     * @param experiment
     * @return
     */
    public boolean updateExperiment(Experiment experiment);

    /**
     * 作品动态列表
     *
     * @param message 关键字
     * @return
     */
    public List<ExperimentDynamicVo> getAllDynamic(String message);

    /**
     * 实验报告列表
     *
     * @param userId
     * @param message 关键字
     * @return
     */
    public List<ExperimentReportVo> getAllReport(@Param("userId") Integer userId, @Param("message") String message);

    /**
     * 点赞和取消点赞使用的是redis，因此此处无用
     */
    /**
     * 点赞
     *
     * @param userId
     * @param experimentId
     * @return
     */
    public boolean giveLike(@Param("userId") Integer userId, @Param("experimentId") Long experimentId);

    /**
     * 取消点赞
     *
     * @param userId
     * @param experimentId
     * @return
     */
    public boolean unGiveLike(@Param("userId") Integer userId, @Param("experimentId") Long experimentId);

    /**
     * 删除实验报告
     *
     * @param experimentId
     * @return
     */
    public boolean delete(Long experimentId);

    void addu3d02(@Param("id") int id, @Param("username") String username, @Param("data") String data, @Param("formatdata") String formatdata);

    void addu3ddddd(@Param("udsuserid") int id,
                    @Param("udsname") String username,
                    @Param("usertime") String userTime,
                    @Param("conmmittime") String conmmitTime,
                    @Param("totalscore") Integer totalScore,
                    @Param("score_read") Integer score_read,
                    @Param("score_sigin") Integer score_sigin,
                    @Param("score_begin") Integer score_begin,
                    @Param("score_zt") Integer score_zt,
                    @Param("score_jzcf") Integer score_jzcf,
                    @Param("score_zts") Integer score_zts,
                    @Param("score_fac") Integer score_fac,
                    @Param("score_hy") Integer score_hy,
                    @Param("score_wy") Integer score_wy,
                    @Param("score_kh") Integer score_kh,
                    @Param("qd_summary") String qd_summary,
                    @Param("yj_summary") String yj_summary,
                    @Param("hy_summary") String hy_summary,
                    @Param("wy_summary") String wy_summary);

    List<Uds> allsy2(@Param("udsuserid") int userid);


    List<Uds> allallsy02();


    void deleteExperimental(@Param("udsid") int udsid);


}
